Как создать docker для yii2 для запуска на локальной машине

Создание Docker для Yii2 на локальной машине

Чтобы создать Docker-контейнер для приложения Yii2 на вашей локальной машине, выполните следующие шаги:

1. Установка Docker

Если у вас еще не установлен Docker, скачайте и установите его с официального сайта Docker.

2. Создание структуры проекта

Создайте новую директорию для вашего проекта Yii2 и перейдите в нее:

bash

1
2
mkdir yii2-docker-app
cd yii2-docker-app

3. Создание Dockerfile

Создайте файл Dockerfile в корне вашего проекта с содержимым:

dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Используем официальный образ PHP с необходимыми расширениями
FROM php:8.0-fpm
 
# Установка необходимых расширений
RUN docker-php-ext-install pdo pdo_mysql
 
# Установка Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
 
# Установка рабочей директории
WORKDIR /var/www
 
# Копируем файлы проекта в контейнер
COPY . .
 
# Установка зависимостей через Composer
RUN composer install

4. Создание docker-compose.yml

Создайте файл docker-compose.yml в корне вашего проекта:

yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: '3.8'
 
services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    volumes:
      - .:/var/www
    ports:
      - "8000:80"
    depends_on:
      - db
 
  db:
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: yii2_db
      MYSQL_USER: user
      MYSQL_PASSWORD: password
    volumes:
      - db_data:/var/lib/mysql
 
volumes:
  db_data:

5. Настройка конфигурации Yii2

Вам нужно будет настроить подключение к базе данных в файле config/db.php вашего приложения Yii2:

php

1
2
3
4
5
6
7
return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=db;dbname=yii2_db',
    'username' => 'user',
    'password' => 'password',
    'charset' => 'utf8',
];

6. Запуск контейнеров

Теперь вы готовы запустить ваше приложение. В терминале выполните команду:

bash

1
docker-compose up -d

Эта команда создаст и запустит контейнеры в фоновом режиме.

7. Доступ к приложению

После успешного запуска контейнеров, вы сможете получить доступ к вашему приложению по адресу http://localhost:8000.